//! 错误类型定义

use thiserror::Error;

/// Unichar库的错误类型
#[derive(Error, Debug)]
pub enum UnicharError {
    /// 字符不存在
    #[error("Character '{name}' not found")]
    CharacterNotFound { name: String },

    /// 样式不支持
    #[error("Style '{style}' not supported for character '{name}'")]
    StyleNotSupported { name: String, style: String },

    /// 配置错误
    #[error("Configuration error: {message}")]
    ConfigError { message: String },

    /// JSON序列化/反序列化错误
    #[error("JSON error: {0}")]
    JsonError(#[from] serde_json::Error),

    /// IO错误
    #[error("IO error: {0}")]
    IoError(#[from] std::io::Error),
}

/// 结果类型别名
pub type Result<T> = std::result::Result<T, UnicharError>;
